package com.hvgroup.modules.sanic.service.impl.chat.template;

import com.fasterxml.jackson.databind.JsonNode;
import com.hvgroup.modules.sanic.domain.enums.PlatformType;
import com.hvgroup.modules.sanic.domain.po.LlmModelConfig;
import com.hvgroup.modules.sanic.domain.po.LlmModelConfigApi;
import com.hvgroup.modules.sanic.domain.qo.CPReqBody;
import com.hvgroup.modules.sanic.service.impl.chat.EventData;
import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;

public interface ExecuteTemplate {

    /**
     * 获取当前 Handler 处理的平台类型
     */
    PlatformType getType();

    Mono<JsonNode> buildDsetApi(LlmModelConfig config, CPReqBody query);

    Flux<EventData> buildChatApi(LlmModelConfigApi config, CPReqBody query);

    Mono<String> deleteDatasetsTpml(LlmModelConfig config, CPReqBody query);

    Object uploadDatasetsTpml(LlmModelConfig platform, CPReqBody cpReqBody);
}
